home *** CD-ROM | disk | FTP | other *** search
/ Merciful 5 / Merciful - Disc 5.iso / software / r / rtg_master / rtgmasterv21.0dev.lha / devdocs / rtgmaster.ad < prev    next >
Encoding:
Text File  |  1997-03-24  |  82.1 KB  |  2,147 lines

  1. rtgmaster.library/CallRtgC2P                                rtgmaster.library/CallRtgC2P
  2.  
  3.    NAME
  4.         CallRtgC2P -- Perform c2p for Planar Screens, CopyRtgPixelArray for Chunky Screens
  5.  
  6.    SYNOPSIS
  7.         int CallRtgC2P(RtgScreen,BufAdr,Array,signal,xpos,ypos,width,height,mode)
  8.          D0              A0        A1     A2    D0     D1   D2   D3    D4     D5
  9.  
  10.         int CallRtgC2P(struct RtgScreen *,APTR,APTR,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG)
  11.  
  12.    FUNCTION
  13.         This function will look what the "standard c2p" for the system is up to now
  14.         (the standard c2p can be choose by a future version of the Rtgmaster Screenmode
  15.         requester, the available c2p algorithms are found in libs:rtgc2p, how own c2p
  16.         algorithms can be added to the system will be explained in the documentation
  17.         of the first version of rtgmaster.library that actually supports CallRtgC2P).
  18.         The function will, if the display is a Planar one, convert the Chunky Data in
  19.         Array to Planar using the choosen c2p algorithm, and display it in the choosen
  20.         Buffer. For Chunky Displays it will instead do the same as CopyRtgChunkyPixel.
  21.         This way a very easy possibility to support both AGA and Graphics Boards without
  22.         having to do "special versions" will be available, if one uses a Fastram Buffer.
  23.  
  24.         I am still looking for c2p algorithms for this function !!! All used c2p algorithms
  25.         should support AGA and additional, it would be fine, if they supported
  26.         1x1,1x2,2x1 and 2x2. If you have fine c2p algorithms, mail me
  27.         (MagicSN@birdland.es.bawue.de).
  28.  
  29.         NOTE : The Array should EXACTLY be as big as specified with Left, Top, Width
  30.         and Height... it should *NOT* be bigger.
  31.  
  32.         NOTE: Currently you *HAVE TO* use xpos=0 ypos=0 width=<max x> height=<max y>
  33.         Maybe this will change in the future !!!!!!!!!!!!!! This is only because i do
  34.         not have ANY c2p that supports that feature up to now...
  35.  
  36.         NOTE: Some c2p algorithms might do NOTHING in certain colour depths, chunky modes
  37.         or for interleaved bitmaps. Be careful about this. If the c2p works,
  38.         this function returns 0, otherwise an errorcode.
  39.  
  40.         Principially it COULD support 256, 64 (EHB), 32 or 16 colors and 1x1, 1x2, 2x1,
  41.         2x2,4x2,2x4 and 4x4 (look at the includes). It is also possible to choose the
  42.         FASTEST AVAILABLE, the BEST AVAILABLE mode or the mode that was selected from
  43.         the user as standard mode for his system, using the Screenmode Requester.
  44.  
  45.         If the user did not specify a standard c2p, this function will use the fastest
  46.         available mode.
  47.  
  48.         The signal indicates (for asynchrone c2p) that the c2p has done. For synchrone
  49.         ones it is set after quitting the function.
  50.  
  51.         In mode you specify which c2p mode to use.
  52.  
  53.         For Graphics Boards, ALWAYS 1x1 is used.
  54.  
  55.    INPUTS
  56.         RtgScreen - The RtgScreen to use.
  57.         BufAdr - The address of the buffer to use
  58.         Array - The fastram buffer
  59.         Left - The x position on the Bitmap of RtgScreen where to put the stuff
  60.         Top - The y position
  61.         Width - The Width of the stuff
  62.         Height - The Height of the stuff
  63.  
  64.    SEE ALSO
  65.         CopyRtgPixelArray()
  66.  
  67. rtgmaster.library/CloseClient                               rtgmaster.library/CloseClient
  68.  
  69.    NAME
  70.         CloseClient -- Closes the Client of a TCP/IP connection again
  71.  
  72.    SYNOPSIS
  73.         CloseClient(SBase,Socket)
  74.                      A0    A1
  75.  
  76.         CloseClient(struct Library *,struct TCP_Socket *)
  77.  
  78.    FUNCTION
  79.         Terminates a "virtual connection" of TCP/IP and gives the Socket of the Client
  80.         back to the system. (For UDP it only gives the socket back to the system,
  81.         as there are no "virtual connections" in connectionless UDP).
  82.  
  83.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  84.         yourselves and provide it as parameter. This is needed because of some internal
  85.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  86.         at the Docs for more information.
  87.  
  88.         You do NOT have to use rtgmaster.library's Graphics Board features to
  89.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  90.  
  91.    INPUTS
  92.         SBase    - Result of the call (C Syntax here...)
  93.                    SBase = OpenLibrary("bsdsocket.library",0);
  94.         Socket   - The Socket of the Client you want to close.
  95.                    You should ONLY use this function for Clients,
  96.                    NOT FOR SERVERS !!!
  97.  
  98.  SEE ALSO
  99.         OpenClient(),OpenServer(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  100.  
  101. rtgmaster.library/CloseRtgScreen                            rtgmaster.library/CloseRtgScreen
  102.  
  103.    NAME
  104.         CloseRtgScreen -- Close a screen previously opened with
  105.                           OpenRtgScreen
  106.  
  107.    SYNOPSIS
  108.         CloseRtgScreen(RtgScreen)
  109.                         A0
  110.  
  111.         CloseRtgScreen(ULONG)
  112.  
  113.    FUNCTION
  114.         Should close a RtgScreen opened by this sublibrary and free all
  115.         of its resources.
  116.  
  117.    INPUTS
  118.         RtgScreen - A handle for a valid screen previously opened by
  119.                     this sublibrary's OpenRtgScreen() function.
  120.  
  121.    SEE ALSO
  122.         OpenRtgScreen()
  123.  
  124. rtgmaster.library/CloseServer                               rtgmaster.library/CloseServer
  125.  
  126.    NAME
  127.         CloseServer -- Closes the Server of a TCP/IP connection again
  128.  
  129.    SYNOPSIS
  130.         CloseServer(SBase,Socket)
  131.                      A0    A1
  132.  
  133.         CloseServer(struct Library *,struct TCP_Socket *)
  134.  
  135.    FUNCTION
  136.         Terminates a "virtual connection" of TCP/IP and gives the Socket of the Server
  137.         back to the system. For UDP it only gives the socket back to the system, as
  138.         for UDP there is no connection to terminate.
  139.  
  140.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  141.         yourselves and provide it as parameter. This is needed because of some internal
  142.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  143.         at the Docs for more information.
  144.  
  145.         You do NOT have to use rtgmaster.library's Graphics Board features to
  146.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  147.  
  148.    INPUTS
  149.         SBase    - Result of the call (C Syntax here...)
  150.                    SBase = OpenLibrary("bsdsocket.library",0);
  151.         Socket   - The Socket of the Client you want to close.
  152.                    You should ONLY use this function for Servers,
  153.                    NOT FOR CLIENTS !!!
  154.  
  155.  SEE ALSO
  156.         OpenClient(),OpenServer(),CloseClient(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  157.  
  158. rtgmaster.library/CopyRtgPixelArray                      rtgmaster.library/CopyRtgPixelArray
  159.  
  160.    NAME
  161.         CopyRtgPixelArray -- Copy a rectangular array of pixels directly
  162.                              to the graphics card memory without any
  163.                              conversion
  164.  
  165.    SYNOPSIS
  166.         CopyRtgPixelArray(RtgScreen, BufferAdr, Array, Left, Top, Width, Height,SrcX,SrcY);
  167.                            A0         A1         A2     D0    D1   D2     D3     D4   D5
  168.  
  169.         CopyRtgPixelArray(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  170.                           ULONG, ULONG,ULONG,ULONG)
  171.  
  172.    FUNCTION
  173.         Copies a rectangular array of pixels directly to the graphics card
  174.         memory with no conversion.  The array of pixels is assumed to be
  175.         in the correct native format so it can be copied at maximum speed.
  176.         The copy routine however does take segment boundaries in account (if
  177.         required).
  178.  
  179.         This routine is mainly intended for machines which have relatively
  180.         fast FastRAM compared to the speed of the graphics card RAM.  This
  181.         is usually on machines with a 32-bit accelerator card which have
  182.         a Zorro-II graphics card installed.
  183.  
  184.         This function is not supported by the rtgAMI.library.
  185.  
  186.    INPUTS
  187.         RtgScreen - A handle for a valid screen previously opened by
  188.                     this sublibrary's OpenRtgScreen() function.
  189.         BufferAdr - The address of the memory containing the actual
  190.                     screen graphics
  191.         Array - Pointer to an array of pixels which is Width pixels wide,
  192.                 and Height pixels high.  The size of the pixel is dependant
  193.                 on the ScreenBuffer your copying to.  Make sure the array
  194.                 is in the correct native format.
  195.         Left - X position of the top-left of the rectangular pixel array
  196.         Top - Y position of the top-left of the rectangular pixel array
  197.         Width - Width of the array in pixels
  198.         Height - Height of the array in pixels
  199.  
  200.    SEE ALSO
  201.         OpenRtgScreen(), WritePixelArray(), WritePixelRGBArray()
  202.  
  203.  
  204. rtgmaster.library/DrawRtgLine                                   rtgmaster.library/DrawRtgLine
  205.  
  206.    NAME
  207.         DrawRtgLine - draws a line on a RtgScreen
  208.  
  209.    SYNOPSIS
  210.         DrawRtgLine(RtgScreen, BufferAdr, Color, X1, Y1, X2, Y2)
  211.                      A0         A1         D0     D1  D2  D3  D4
  212.  
  213.         DrawRtgLine(struct RtgScreen *, APTR, ULONG, LONG, LONG, LONG, LONG)
  214.  
  215.    FUNCTION
  216.         Draws a line on the screen which will be clipped if necessary.
  217.         NOTE : X1<=X2 AND Y1<=Y2 !!!
  218.  
  219.    INPUTS
  220.         RtgScreen - A handle for a valid screen previously opened by
  221.                     this sublibrary's OpenRtgScreen() function.
  222.         BufferAdr - The address of the memory containing the actual
  223.                     screen graphics
  224.         Color - Color number
  225.         X1,Y1,X2,Y2 - Draws a line from (X1,Y1) to (X2,Y2)
  226.  
  227.    SEE ALSO
  228.         OpenRtgScreen(), DrawRtgLineRGB()
  229.  
  230.  
  231. rtgmaster.library/DrawRtgLineRGB                             rtgmaster.library/DrawRtgLineRGB
  232.  
  233.    NAME
  234.         DrawRtgLineRGB - draws a line on a RtgScreen
  235.  
  236.    SYNOPSIS
  237.         DrawRtgLineRGB(RtgScreen, BufferAdr, Color, X1, Y1, X2, Y2)
  238.                         A0         A1         D0     D1  D2  D3  D4
  239.  
  240.         DrawRtgLineRGB(struct RtgScreen *, APTR, ULONG, LONG, LONG, LONG,
  241.                        LONG)
  242.  
  243.    FUNCTION
  244.         Draws a line on the screen which will be clipped if necessary.
  245.         NOTE: X1<=X2 AND Y1<=Y2 !!!
  246.  
  247.    INPUTS
  248.         RtgScreen - A handle for a valid screen previously opened by
  249.                     this sublibrary's OpenRtgScreen() function.
  250.         BufferAdr - The address of the memory containing the actual
  251.                     screen graphics
  252.         Color - A 32-bit value describing the color
  253.         X1,Y1,X2,Y2 - Draws a line from (X1,Y1) to (X2,Y2)
  254.  
  255.    SEE ALSO
  256.         OpenRtgScreen(), DrawRtgLine()
  257.  
  258.  
  259. rtgmaster.library/FillRtgRect                                   rtgmaster.library/FillRtgRect
  260.  
  261.    NAME
  262.         FillRtgRect - draws a filled rectangle to a RtgScreen
  263.  
  264.    SYNOPSIS
  265.         FillRtgRect(RtgScreen, BufferAdr, Color, Left, Top, Width, Height)
  266.                      A0         A1         D0     D1    D2   D3     D4
  267.  
  268.         FillRtgRect(struct RtgScreen *, APTR, ULONG, ULONG, ULONG,
  269.                     ULONG, ULONG)
  270.  
  271.    FUNCTION
  272.         Draws a filled rectangle at the specified position on a RtgScreen.
  273.         The BufferAdr is the starting address of the buffer the users wants
  274.         to draw the rectangle in.  The user has obtained this address using
  275.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  276.         the correct buffer for screens which are double or triple buffered.
  277.  
  278.         This function should only work for Palette mapped modes, Color is
  279.         the Color number of the palette.
  280.  
  281.    INPUTS
  282.         RtgScreen - A handle for a valid screen previously opened by
  283.                     this sublibrary's OpenRtgScreen() function.
  284.         BufferAdr - The address of the memory containing the actual
  285.                     screen graphics
  286.         Color - Color number
  287.         Left - X position of the top-left of the rectangle
  288.         Top - Y position of the top-left of the rectangle
  289.         Width - Width of the rectangle in pixels
  290.         Height - Height of the rectangle in pixels
  291.  
  292.    SEE ALSO
  293.         OpenRtgScreen(), FillRtgRectRGB()
  294.  
  295.  
  296.  
  297. rtgmaster.library/FillRtgRectRGB                             rtgmaster.library/FillRtgRectRGB
  298.  
  299.    NAME
  300.         FillRtgRectRGB - draws a filled rectangle to a RtgScreen
  301.  
  302.    SYNOPSIS
  303.         FillRtgRectRGB(RtgScreen, BufferAdr, Color, Left, Top, Width, Height)
  304.                         A0         A1         D0     D1    D2   D3     D4
  305.  
  306.         FillRtgRectRGB(struct RtgScreen *, APTR, ULONG, ULONG, ULONG,
  307.                        ULONG, ULONG)
  308.  
  309.    FUNCTION
  310.         Draws a filled rectangle at the specified position on a RtgScreen.
  311.         The BufferAdr is the starting address of the buffer the users wants
  312.         to draw the rectangle in.  The user has obtained this address using
  313.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  314.         the correct buffer for screens which are double or triple buffered.
  315.  
  316.         This function should only work for True Color modes, Color is
  317.         a 32 bit value which specifies what Color the pixel should be.
  318.         The layout of this 32-bit value is as follows:
  319.  
  320.         %aaaaaaaa.rrrrrrrr.gggggggg.bbbbbbbb
  321.  
  322.         a = AlphaChannel (8-bits) which may or may not be ignored.  The
  323.             user will set this to zero if the user doesn't want to use
  324.             AlphaChannel.
  325.         r = Red component (8-bits) of the 24-bit RGB value
  326.         g = Green component (8-bits) of the 24-bit RGB value
  327.         b = Blue component (8-bits) of the 24-bit RGB value
  328.  
  329.  
  330.    INPUTS
  331.         RtgScreen - A handle for a valid screen previously opened by
  332.                     this sublibrary's OpenRtgScreen() function.
  333.         BufferAdr - The address of the memory containing the actual
  334.                     screen graphics
  335.         Color - A 32-bit value describing the color (see above)
  336.         Left - X position of the top-left of the rectangle
  337.         Top - Y position of the top-left of the rectangle
  338.         Width - Width of the rectangle in pixels
  339.         Height - Height of the rectangle in pixels
  340.  
  341.    SEE ALSO
  342.         OpenRtgScreen(), FillRtgRect()
  343.  
  344. rtgmaster.library/RtgScreenModeReq                          rtgmaster.library/FreeRtgScreenModeReq
  345.  
  346.    NAME
  347.         FreeRtgScreenModeReq - frees the ScreenReq structure again
  348.  
  349.    SYNOPSIS
  350.         FreeRtgScreenModeReq(myreq)
  351.                               A0
  352.  
  353.         FreeRtgScreenModeReq(struct ScreenReq *)
  354.  
  355.    FUNCTION
  356.         This function frees the memory allocated by RtgScreenModeReq again.
  357.         Should be called after you need that data not any longer. Note: This
  358.         function caused a system crash with an early Beta Version of rtgmaster.library.
  359.         This does no longer happen, as this bug got fixed. This function is
  360.         only in the master-library, not in the sublibraries.
  361.  
  362.    INPUTS
  363.         myreq - The ScreenReq Structure returned by RtgScreenModeReq
  364.  
  365.    SEE ALSO
  366.         RtgScreenModeReq()
  367.  
  368. rtgmaster.library/FreeScreenModes                           rtgmaster.library/FreeScreenModes
  369.  
  370.    NAME
  371.         FreeScreenModes - frees a list of screenmodes
  372.  
  373.    SYNOPSIS
  374.         FreeScreenModes(array of screenmodes)
  375.                          A0
  376.  
  377.         FreeScreenModes(APTR)
  378.  
  379.    FUNCTION
  380.         This function should free a previously with GetScreenModes()
  381.         allocated list of ScreenMode structures, including everything else
  382.         GetScreenModes() allocated.  Be prepared to handle a NULL pointer.
  383.         THIS FUNCTION IS ONLY IN SUBLIBRARIES, NOT IN THE MASTER-LIBRARY
  384.         ITSELF. IT IS ONLY CALLED BY RTGMASTER.LIBRARY ITSELF.
  385.  
  386.    INPUTS
  387.         array - an array of ScreenMode structures or NULL
  388.  
  389.    SEE ALSO
  390.         GetScreenModes()
  391.  
  392.  
  393.  
  394. rtgmaster.library/GetBufAdr                                       rtgmaster.library/GetBufAdr
  395.  
  396.    NAME
  397.         GetBufAdr -- Get the address for one of the buffers from a
  398.                      multi-buffered RtgScreen
  399.  
  400.    SYNOPSIS
  401.         address = GetBufAdr(RtgScreen, Buffer)
  402.          D0                  A0         D0
  403.  
  404.         APTR GetBufAdr(ULONG, ULONG)
  405.  
  406.    FUNCTION
  407.         If the user is using multi-buffered screens, it might be usefull
  408.         to know where the two buffers start in memory.  After a
  409.         LockRtgScreen() the user can call this function with a RtgScreen
  410.         handle and a number to get the address of the corresponding
  411.         buffer.
  412.  
  413.         The address is only valid if the RtgScreen is currently locked
  414.         using LockRtgScreen().
  415.  
  416.    INPUTS
  417.         RtgScreen - A handle for a valid screen previously opened by
  418.                     this sublibrary's OpenRtgScreen() function.
  419.         Buffer - The buffer number the user wants the address of
  420.  
  421.    RESULTS
  422.         address - the address of the buffer, or NULL for failure
  423.  
  424.    SEE ALSO
  425.         LockRtgScreen(), OpenRtgScreen()
  426.  
  427.  
  428. rtgmaster.library/GetRtgScreenData                        rtgmaster.library/GetRtgScreenData
  429.  
  430.    NAME
  431.         GetRtgScreenData -- Fills a TagList with data about the RtgScreen 
  432.  
  433.    SYNOPSIS
  434.         GetRtgScreenData(RtgScreen, TagList)
  435.                           A0         A1
  436.  
  437.         GetRtgScreenData(ULONG, struct TagItem *)
  438.  
  439.    FUNCTION
  440.         This function should fill the TI_DATA fields of the passed in
  441.         TagList with the requested information.
  442.  
  443.         See for available tags and descriptions in the .i/.h file.
  444.  
  445.         NOTE: Starting with sublibrary V2.2, this function can also
  446.         be used to find out to what BUSSYSTEM a Graphics Board is
  447.         connected. In the original design of rtgmaster an extra function
  448.         was intended for that, but now it is the job of GetRtgScreenData.
  449.  
  450.    INPUTS
  451.         RtgScreen - A handle for a valid screen previously opened by
  452.                     this sublibrary's OpenRtgScreen() function.
  453.         TagList - TagList which should be filled in with requested info.
  454.  
  455.    SEE ALSO
  456.         OpenRtgScreen(), GetBufAdr()
  457.  
  458.  
  459.  
  460. rtgmaster.library/GetScreenModes                             rtgmaster.library/GetScreenModes
  461.  
  462.    NAME
  463.         GetScreenModes - builds a list of available screenmodes
  464.  
  465.    SYNOPSIS
  466.         array of ScreenMode structures = GetScreenModes()
  467.          D0
  468.  
  469.         APTR GetScreenModes()
  470.  
  471.    FUNCTION
  472.         This function should return a linked list of ScreenMode structures
  473.         describing all the available ScreenModes available to this
  474.         sublibrary.  If there aren't any, or you couldn't allocate the
  475.         memory for the list then return 0. THIS FUNCTION IS ONLY IN SUBLIBRARIES,
  476.         NOT IN THE MASTER-LIBRARY ITSELF. IT IS ONLY CALLED BY RTGMASTER.LIBRARY
  477.         ITSELF.
  478.  
  479.    RESULTS
  480.         array - an array of ScreenMode structures or NULL
  481.  
  482.    SEE ALSO
  483.         FreeScreenModes()
  484.  
  485.  
  486.  
  487. rtgmaster.library/GetSegment                                     rtgmaster.library/GetSegment
  488.  
  489.    NAME
  490.         GetSegment - get the active segment or ~0
  491.  
  492.    SYNOPSIS
  493.         segnum = GetSegment()
  494.          D0
  495.  
  496.         ULONG GetSegment()
  497.  
  498.    FUNCTION
  499.         If the graphic board works in segment mode -- with a
  500.         memory window of 64 KByte -- you will get the number of the
  501.         active segment after calling this function.
  502.  
  503.         If the graphic board works non segmented, you will get
  504.         ~0 (= 0xFFFFFFFF) as a result to this call.
  505.  
  506.    RESULTS
  507.         segnum - number of active segment, or -1 if the board works
  508.                  non-segmented
  509.  
  510.    SEE ALSO
  511.         SetSegment()
  512.  
  513.  
  514. rtgmaster.library/GetUDPName                                     rtgmaster.library/GetUDPName
  515.  
  516.    NAME
  517.         GetUDPName - Get the sockaddr_in structure of a UDP Client/Server
  518.  
  519.    SYNOPSIS
  520.         name = GetUDPName(SocketBase, sock)
  521.                     A0          A1
  522.  
  523.         struct sockaddr_in *GetUDPName(struct Library *, struct RTG_Socket *)
  524.  
  525.    FUNCTION
  526.         If this is UDP, you will get the sockaddr_in structure of a Client/Server,
  527.         else you will get 0. For what this is intended, read RtgRecv/RtgSend/RtgInAdr.
  528.         And of course the Docs of rtgmaster.library where detailed information about
  529.         TCP, IP and UDP is found.
  530.  
  531.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  532.         yourselves and provide it as parameter. This is needed because of some internal
  533.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  534.         at the Docs for more information.
  535.  
  536.         You do NOT have to use rtgmaster.library's Graphics Board features to
  537.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  538.  
  539.    INPUTS
  540.         SBase    - Result of the call (C Syntax here...)
  541.                    SBase = OpenLibrary("bsdsocket.library",0);
  542.         Socket   - The Socket of the Client you want to close.
  543.                    You should ONLY use this function for Clients,
  544.                    NOT FOR SERVERS !!!
  545.  
  546.    RESULTS
  547.         name     - The sockaddr_in structure of the Client/Server
  548.  
  549.  SEE ALSO
  550.         OpenClient(),OpenServer(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),RtgInAdr()
  551.  
  552. rtgmaster.library/LoadRGBRtg                                     rtgmaster.library/LoadRGBRtg
  553.  
  554.    NAME
  555.         LoadRGBRtg - changes one or more colors of a RtgScreen
  556.  
  557.    SYNOPSIS
  558.         LoadRGBRtg(RtgScreen, Table)
  559.                     A0         A1
  560.  
  561.         LoadRGBRtg(ULONG, APTR)
  562.  
  563.    FUNCTION
  564.         Enables the user to change one or more colors of his/her screen.
  565.         This function only works for RtgScreens which have a palette, and
  566.         thus won't work for the True-color modes.
  567.  
  568.    INPUTS
  569.         RtgScreen - A handle for a valid screen previously opened by
  570.                     this sublibrary's OpenRtgScreen() function.
  571.         Table - A pointer to a series of records which describe which
  572.                 colors to modify
  573.  
  574.    NOTES
  575.         Passing a NULL Table must be ignored.  The format of the Table
  576.         passed is a series of records, each with the this format:
  577.  
  578.            WORD  Count value: Number of colors to load
  579.            WORD  Number of first color to be loaded
  580.  
  581.         After these two words, a list of 3 Longs follow as many times
  582.         as specified by the first word.  These 3 longwords represent the
  583.         left justified 32 bit RGB value.
  584.  
  585.         And then the list repeats until ended with a count value of 0.
  586.  
  587.         See for more information about the table graphics/LoadRGB32.
  588.         This function must use the same format.
  589.  
  590.    SEE ALSO
  591.         OpenRtgScreen(), graphics/LoadRGB32()
  592.  
  593.  
  594.  
  595. rtgmaster.library/LockRtgScreen                              rtgmaster.library/LockRtgScreen
  596.  
  597.    NAME
  598.         LockRtgScreen -- Locks a RtgScreen (prevents it from being moved
  599.                          in memory)
  600.  
  601.    SYNOPSIS
  602.         address = LockRtgScreen(RtgScreen)
  603.          D0                      A0
  604.  
  605.         APTR LockRtgScreen(ULONG)
  606.  
  607.    FUNCTION
  608.         This function should make sure that the screen is not moved from
  609.         it's current location in memory.  In other words, it will guarantee
  610.         that the address you get back from this function remains valid
  611.         until you call UnlockRtgScreen().
  612.     
  613.         The result from this function should be the address of the buffer
  614.         associated with the screen either in the graphics cards own
  615.         memory or the computers memory.
  616.  
  617.         For multi-buffered screens the return-address must point to buffer
  618.         0 for this RtgScreen.  To get the addresses of the other
  619.         buffers the user will use GetBufAdr().
  620.  
  621.         LockRtgScreen and UnlockRtgScreen functions must nest, which means
  622.         you must call an UnlockRtgScreen for every LockRtgScreen.  The
  623.         field rs_Locks in the RtgScreen structure should be used to keep
  624.         track of the number of times a screen was locked.
  625.  
  626.         Note : On some Graphics Boards this function will take some
  627.         CPU time to happen, so it is advised ONLY to call it *once* at the start
  628.         of your code (And UnlockRtgScreen *once* at the end of your code,
  629.         to be on the sure side...)
  630.  
  631.    INPUTS
  632.         RtgScreen - A handle for a valid screen previously opened by
  633.                     this sublibrary's OpenRtgScreen() function.
  634.  
  635.    RESULTS
  636.         address - The address of the (first) buffer of this screen.
  637.  
  638.    SEE ALSO
  639.         UnlockRtgScreen(), OpenRtgScreen(), GetBufAdr()
  640.  
  641. rtgmaster.library/OpenClient                                 rtgmaster.library/OpenClient
  642.  
  643.    NAME
  644.         OpenClient    -- Open a TCP/IP Client
  645.  
  646.    SYNOPSIS
  647.         Socket = OpenClient(SBase,host,port,mode,protocol)
  648.          D0                  A0    A1   D0   D1   D2
  649.  
  650.         struct RTG_Socket *OpenClient(struct Library *,char *,int,int,int)
  651.  
  652.    FUNCTION
  653.         For TCP, this function opens a "virtual connection" between two applications.
  654.         For UDP it creates a socket that can be used by the application to
  655.         transfer data connectionless to other applications.
  656.         This function is the "Client part" of the connection. The protocol
  657.         being used is TCP/IP.
  658.  
  659.         For more information, look at the docs. There is a chapter about
  660.         "TCP/IP programming for newcomers", that shows you, how to support
  661.         netework gaming for your computer game, even if you never heard of
  662.         TCP/IP before :) Up to now rtgmaster.library only supports the
  663.         "protocol stack" AmiTCP, no AS225 support up to now.  Runs for sure
  664.         with AmiTCP 4.0 demo from Aminet, i do not know about earlier versions.
  665.  
  666.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  667.         yourselves and provide it as parameter. This is needed because of some internal
  668.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  669.         at the Docs for more information.
  670.  
  671.         You do NOT have to use rtgmaster.library's Graphics Board features to
  672.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  673.  
  674.    INPUTS
  675.         SBase    - Result of the call (C Syntax here...)
  676.                    SBase = OpenLibrary("bsdsocket.library",0);
  677.         host     - hostname of the "Server",  to which you want to connect your
  678.                    application (for example "194.55.101.26").
  679.         port     - The port your application uses. For example 4000.
  680.                    Be sure to use a number bigger than 3000, small numbers
  681.                    are often used for different protocols in TCP/IP. For example
  682.                    21 is telnet.
  683.         mode     - The mode of the connection. Up to now only SOCK_STREAM is
  684.                    supported ("virtual connection using a datastream").
  685.                    SOCK_DGRAM probably will give you a UDP connection, but
  686.                    i do not know enough about UDP to make this really working...
  687.                    maybe in a future version...
  688.         protocol - The protocol To be used. Set this to 0 currently.
  689.                    mode SOCK_STREAM and protocol 0 will result in a TCP connection.
  690.  
  691.  
  692.    RESULTS
  693.         Socket   - The "Socket" of the Application. See more in the docs.
  694.  
  695.    SEE ALSO
  696.         OpenServer(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  697.  
  698. rtgmaster.library/OpenRtgScreen                              rtgmaster.library/OpenRtgScreen
  699.  
  700.    NAME
  701.         OpenRtgScreen -- Open a screen
  702.  
  703.    SYNOPSIS
  704.         RtgScreen = OpenRtgScreen(ScreenReq, RtgTags)
  705.          D0                        A0         A1
  706.  
  707.         struct RtgScreen *OpenRtgScreen(struct ScreenReq *, struct TagItem *)
  708.  
  709.  
  710.    FUNCTION
  711.         This function should open the screen which falls within the 
  712.         parameters specified by the user.  If this function can't
  713.         deliver such a screen than it will fail and will return zero.
  714.  
  715.         Note that the Width and Height values you get from
  716.         rtgmaster.library have been checked to see if they are valid
  717.         for this screenmode.  Also note that RtgTags may be zero.
  718.  
  719.    INPUTS
  720.         RtgTags - Pointer to (an array of) TagItem structures,
  721.                   terminated by the value TAG_END (0).
  722.         ScreenReq - ScreenReq structure as returned by RtgScreenModeReq()
  723.                     of rtgmaster.library, see rtg.i for more information
  724.  
  725.         Each TagItem is an optional tagged data structure which
  726.         identifies a parameter to OpenRtgScreen().  The applicable tag ID
  727.         values for TagItem.ti_Tag and their corresponding data can be
  728.         found in the .i/.h file where the Tags for OpenRtgScreen() are
  729.         specified.
  730.  
  731.    RESULTS
  732.         RtgScreen - A handle for the screen you opened.  The user may
  733.                     later use this handle to get information about
  734.                     this screen or perform actions like setting the 
  735.                     palette or double/triple buffering.  You should
  736.                     returns NULL if the screen couldn't be opened.
  737.  
  738.    SEE ALSO
  739.         CloseRtgScreen()
  740.  
  741. rtgmaster.library/OpenServer                               rtgmaster.library/OpenServer
  742.  
  743.    NAME
  744.         OpenServer - Opens a TCP/IP Server
  745.  
  746.    SYNOPSIS
  747.         Socket=OpenServer(SBase,port,mode,protocol)
  748.          D0                A0    D0   D1   D2
  749.  
  750.         struct TCP_Connect *OpenServer(struct Library *,int,int,int)
  751.  
  752.    FUNCTION
  753.         For TCP this function opens a "virtual connection" between two applications.
  754.         For UDP it creates a server that UDP clients can access.
  755.  
  756.         This function is the "Server part" of the connection. The protocol
  757.         being used is TCP/IP. Up to now, as to the "transport protocol", only
  758.         TCP is supported, no UDP (maybe in a future version ???)
  759.         For more information, look at the docs. There is a chapter about
  760.         "TCP/IP programming for newcomers", that shows you, how to support
  761.         netework gaming for your computer game, even if you never heard of
  762.         TCP/IP before :) Up to now rtgmaster.library only supports the
  763.         "protocol stack" AmiTCP, no AS225 support up to now.  Runs for sure
  764.         with AmiTCP 4.0 demo from Aminet, i do not know about earlier versions.
  765.  
  766.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  767.         yourselves and provide it as parameter. This is needed because of some internal
  768.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  769.         at the Docs for more information.
  770.  
  771.         You do NOT have to use rtgmaster.library's Graphics Board features to
  772.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  773.  
  774.    INPUTS
  775.         SBase    - Result of the call (C Syntax here...)
  776.                    SBase = OpenLibrary("bsdsocket.library",0);
  777.         port     - The port your application uses. For example 4000.
  778.                    Be sure to use a number bigger than 3000, small numbers
  779.                    are often used for different protocols in TCP/IP. For example
  780.                    21 is telnet.
  781.         mode     - The mode of the connection. Up to now only SOCK_STREAM is
  782.                    supported ("virtual connection using a datastream").
  783.                    SOCK_DGRAM probably will give you a UDP connection, but
  784.                    i do not know enough about UDP to make this really working...
  785.                    maybe in a future version...
  786.         protocol - The protocol To be used. Set this to 0 currently.
  787.                    mode SOCK_STREAM and protocol 0 will result in a TCP connection.
  788.  
  789.    RESULTS
  790.         Socket   - The "Socket" of the Application. See more in the docs.
  791.  
  792.  SEE ALSO
  793.         OpenClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  794.  
  795. rtgmaster.library/RtgAccept                                rtgmaster.library/RtgAccept
  796.  
  797.    NAME
  798.         RtgAccept - Let the server accept a connection deminded by a Client
  799.  
  800.    SYNOPSIS
  801.         Socket=RtgAccept(SBase,Socket)
  802.          D0               A0    A1
  803.  
  804.         struct RTG_Socket *RtgAccept(struct Library *,struct RTG_Socket *)
  805.  
  806.    FUNCTION
  807.         if you do not use the RunServer function (you do not use it, if you only
  808.         do a point-to-point connection), you have to do this call on Server side
  809.         to wait for the Client to connect. If you use RunSercer, DO NOT USE IT. It
  810.         is only for connecting exactly TWO systems (one being  the server, one the
  811.         client), not for connecting ONE server with SEVERAL clients...
  812.  
  813.         Also do not use it for UDP connection. RtgAccept is only needed for TCP.
  814.         It does not work with UDP.
  815.  
  816.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  817.         yourselves and provide it as parameter. This is needed because of some internal
  818.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  819.         at the Docs for more information.
  820.  
  821.         You do NOT have to use rtgmaster.library's Graphics Board features to
  822.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  823.  
  824.  
  825.    INPUTS
  826.         SBase    - Result of the call (C Syntax here...)
  827.                    SBase = OpenLibrary("bsdsocket.library",0);
  828.         Socket   - the Socket of the Server
  829.  
  830.     RESULTS
  831.         Socket   - The "Socket" of the Client, that connected. See more in the docs.
  832.  
  833.     SEE ALSO
  834.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgRecv(),RtgIoctl(),GetUDPName(),RtgInAdr()
  835.  
  836. rtgmaster.library/RtgBlit                                  rtgmaster.library/RtgBlit
  837.  
  838.    NAME
  839.         RtgBlit - Performs a Blit without waiting
  840.  
  841.    SYNOPSIS
  842.         RtgBlit(RtgScreen,SrcBuf,DstBuf,SrcX,SrcY,DstX,DstY,Width,Height,Minterm)
  843.                  A0        a1     a2     d0   d1   d2   d3   d4    d5     d6
  844.  
  845.         void RtgBlit(struct RtgScreen *, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG,UBYTE)
  846.  
  847.    FUNCTION
  848.         This function blits the rectangle at (SrxX,SrcY) in the Buffer with the
  849.         NUMBER SrcBuf (0-2) to the position (DstX,DstY) in the Buffer with the
  850.         NUMBER DstBuf (0-2). The Blit has Width Width and Height Height.
  851.  
  852.         For most GFX Boards this function is the fastest way to move
  853.         graphics data.
  854.  
  855.         Note : On some boards (for example EGS Boards) this function might
  856.         wait on the Blitter to be finished as this can't be done in an
  857.         other way with these boards. For these boards WaitRtgBlit simply
  858.         does nothing.
  859.  
  860.         Note : The source and the destination rectangle should NOT OVERLAP !!!
  861.  
  862.         Valid minterms : $30,$50,$60,$80, $C0. NO OTHER MINTERMS ARE VALID.
  863.         OTHER MINTERMS MIGHT WORK WITH SOME SUBLIBRARIES, BUT PROBABLY NOT WITH
  864.         ALL SUBLIBRARIES.
  865.  
  866.         Note: This function MIGHT or MIGHT NOT work with some of the Minterms
  867.         on rtgEGS.library... at least for $C0 it works for all... for the rest...
  868.         i do not see myself as Betatester of half-finished WB-Emulations...
  869.  
  870.    INPUTS
  871.         RtgScreen - The RtgScreen where the Blit should happen
  872.         SrcBuf - The Buffer NUMBER (not address !!!) of the Source Buffer
  873.         DstBuf - The Buffer NUMBER (not address !!!) of the Destination Buffer
  874.         SrcX - The X coordinate of the source Rectangle
  875.         SrcY - The Y coordinate of the source Rectangle
  876.         DstX - The X coordinate of the Destination Rectangle
  877.         DstY - The Y coordinate of the Destination Rectangle
  878.         Width - The Width of the Blit
  879.         Height - The Height of the Blit
  880.         minterm - the minterm of the Blit, defined as usual
  881.  
  882.    SEE ALSO
  883.         OpenRtgScreen(), WaitRtgBlit(), SwitchScreens()
  884.  
  885. rtgmaster.library/RtgBltClear                              rtgmaster.library/BltClear
  886.  
  887.    SYNOPSIS
  888.         RtgBltClear(RtgScreen,BufNum,xpos,ypos,width,height)
  889.  
  890.         RtgBltClear(struct RtgScreen *,ULONG,ULONG,ULONG,ULONG,ULONG)
  891.  
  892.    FUNCTION
  893.         This function clears a rectangular area using the GFX Board
  894.         blitter. For people who wonder, why i did not implement that
  895.         the "usual" way, like done in graphics.library : The graphics.library
  896.         function would not be possible under EGS, therefor i did it
  897.         this way. The function usually does not wait for the Blitter,
  898.         use WaitRtgBlit for this (unless under EGS... like explained
  899.         in RtgBlit and WaitRtgBlit...)
  900.  
  901.    INPUTS
  902.         RtgScreen - The RtgScreen
  903.         BufNum - The NUMBER of the concerned Buffer, between 0 and 2 (NOT the buffer address !!!)
  904.         xpos - the start x position of the rectangle to be cleared
  905.         ypos - the start y position of the rectangle to be cleared
  906.         width - the width of the rectangle
  907.         height - the height of the rectangle
  908.  
  909.    SEE ALSO
  910.         RtgBlit(),WaitRtgBlit()
  911.  
  912.  
  913. rtgmaster.library/RtgClearPointer                           rtgmaster.library/RtgClearPointer
  914.  
  915.    NAME
  916.         RtgClearPointer - resets the pointer to its default image
  917.  
  918.    SYNOPSIS
  919.         RtgClearPointer(RtgScreen)
  920.                          A0
  921.  
  922.         void RtgClearPointer(struct RtgScreen *)
  923.  
  924.    FUNCTION
  925.         This restores the default image of the mousepointer. This is
  926.         very useful, if you changed it with RtgSetPointer, but sometimes
  927.         want the default pointer image, too. The pointer is only changed
  928.         on THIS RtgScreen.
  929.  
  930.    INPUTS
  931.         RtgScreen - The RtgScreen, which pointer should be resetted...
  932.  
  933.    NOTES
  934.        Not implemented yet on rtgPICA.library and rtgEGS.library
  935.  
  936.    SEE ALSO
  937.        RtgSetPointer()
  938.  
  939. rtgmaster.library/RtgCloseFont                              rtgmaster.library/RtgCloseFont
  940.  
  941.    NAME
  942.         RtgCloseFont - closes an AmigaFont
  943.  
  944.    SYNOPSIS
  945.         RtgCloseFont(RtgScreen,font)
  946.                       A0        A1
  947.  
  948.         void RtgCloseFont(struct RtgScreen *,void *)
  949.  
  950.    FUNCTION
  951.         This function closes an AmigaFont on
  952.         a RtgScreen, much the same way, like OpenDiskFont does for
  953.         Intuition Screens. The font parameter of the call
  954.         is not for all WB Emulations a TextFont pointer. Don't use
  955.         CloseFont with rtgmaster.library, use
  956.         RtgCloseFont, for the best possible compatibility with
  957.         all Sublibraries !!!
  958.  
  959.    INPUTS
  960.         RtgScreen - an RtgScreen
  961.         font      - a Font pointer. the structure of it is PRIVATE
  962.                     to rtgmaster.library (and not the same for all
  963.                     sublibraries...)
  964.  
  965.    NOTES
  966.         Not yet implemented for rtgPICA.library
  967.  
  968.    SEE ALSO
  969.         RtgOpenFont(),RtgSetFont(),RtgSetTextMode(),RtgText(),RtgSetTextModeRGB
  970.  
  971.  
  972. rtgmaster.library/RtgInAdr                                 rtgmaster.library/RtgInAdr
  973.  
  974.    NAME
  975.         RtgInAdr - Find out the IP Address of a Receiver/Sender
  976.  
  977.    SYNOPSIS
  978.         ip = RtgInAdr(SBase,si)
  979.         D0             A0   A1
  980.  
  981.         char *RtgInAdr(struct Library *,struct sockaddr_in *)
  982.  
  983.    FUNCTION
  984.         This function finds out the IP Address of a Receiver/Sender.
  985.         You get back the sockaddr_in structure of a receiver/sender by
  986.         RtgRecv/RtgSend or by using GetUDPName. This function ONLY
  987.         works for UDP, not for TCP !!! It is used to differentiate
  988.         Clients running on different machines from each other, if
  989.         one does a Multiple Client "connection" (should not be called
  990.         like that, as UDP is connectionless, but do you know a better
  991.         term ?), without using RunServer...
  992.  
  993.         Of course this function can't differentiate multiple Clients
  994.         running on the same machine...
  995.  
  996.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  997.         yourselves and provide it as parameter. This is needed because of some internal
  998.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  999.         at the Docs for more information.
  1000.  
  1001.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1002.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1003.  
  1004.    INPUTS
  1005.           SBase    - Result of the call (C Syntax here...)
  1006.                      SBase = OpenLibrary("bsdsocket.library",0);
  1007.           si       - Special structure returned by above mentioned calls
  1008.  
  1009.    RESULTS
  1010.           ip       - IP Address as string (for example "194.55.101.26")
  1011.  
  1012.    SEE ALSO
  1013.         OpenClient(),OpenServer(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgAccept(),GetUDPName()
  1014.  
  1015. rtgmaster.library/RtgInitRDCMP                             rtgmaster.library/RtgInitRDCMP
  1016.  
  1017.    NAME
  1018.         RtgInitRDCMP - Inits the rtgmaster direct communication message port (RDCMP)
  1019.  
  1020.    SYNOPSIS
  1021.         result = RtgInitRDCMP(RtgScreen)
  1022.          d0                   a0
  1023.  
  1024.         struct RDCMPData *RtgInitRDCMP(struct RtgScreen *)
  1025.  
  1026.    FUNCTION
  1027.         Inits the input port of rtgmaster. Returns 0, if initialization failed (for example,
  1028.         if sublibrary does not support RDCMP), something >0 else. The port has to be initialized
  1029.         once after Screen-Opening. The result will be a pointer to :
  1030.  
  1031.         struct RDCMPData
  1032.         {
  1033.          struct MsgPort *port;
  1034.          ULONG signal;
  1035.          WORD *MouseX;
  1036.          WORD *MouseY;
  1037.         };
  1038.  
  1039.         Port is the MessagePort of the RtgScreen. NOTE: Better do NOT use
  1040.         that port, the way it handles events, might differ according to the
  1041.         WB Emulation you use, better use the RtgGetMsg function to get Messages !!!
  1042.         The Port was only included, as the coder of a certain game wanted this.
  1043.  
  1044.         Signal will contain the 1<<mp_SigBit of the MessagePort of the RtgScreen
  1045.         for fast Input-Handling.
  1046.  
  1047.         MouseX and MouseY contain POINTERS to the current mouse position. This sort
  1048.         of checking is faster than using GetRtgScreenData for the mouse position.
  1049.  
  1050.         NOTE: All RDCMP/Font/Text functions won't work on the rtgPICA.library, due
  1051.         to the Original Picasso II WB Emulation having some limitations (you only get
  1052.         Direct Video RAM Access *OR* IDCMP/Font/Text).
  1053.  
  1054.    INPUTS
  1055.         RtgScreen - The Screen, which port is to init
  1056.  
  1057.    RESULTS
  1058.         result - 0, if failed, something else, if succeeded
  1059.  
  1060.    NOTES
  1061.        RDCMP supports both waiting and polling !!!
  1062.        As to my experiences, better use RDCMP than anything else...
  1063.        other methods i tried tended to lose mouseclicks, if
  1064.        they came very fast, and if the application took a lot
  1065.        of processing time. RDCMP does not lose data.
  1066.  
  1067.    SEE ALSO
  1068.         RtgWaitRDCMP(),RtgGetMsg(),RtgReplyMsg()
  1069.  
  1070. rtgmaster.library/RtgIoctl                                 rtgmaster.library/RtgIoctl
  1071.  
  1072.    NAME
  1073.         RtgIoctl - Set a Socket to "Blocking" or to "Non-Blocking" mode
  1074.  
  1075.    SYNOPSIS
  1076.         result = RtgIoctl(SBase,Socket,arg)
  1077.          D0                A0    A1     A2
  1078.  
  1079.         int RtgIoctl(struct Library *,struct RTG_Socket *,long *)
  1080.  
  1081.    FUNCTION
  1082.         This function determins, if RtgRecv and RtgSend will WAIT will the data
  1083.         was transmitted, or if they fail, if the data currently could not be
  1084.         transmitted. If arg POINTS to the VALUE 1, we have "non-blocking" (it does
  1085.         not wait), if it POINTS to 0, we have "blocking" (it waits). Default (if
  1086.         you do not call RtgIoctl at all) is "blocking".
  1087.  
  1088.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1089.         yourselves and provide it as parameter. This is needed because of some internal
  1090.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1091.         at the Docs for more information.
  1092.  
  1093.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1094.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1095.  
  1096.         RtgIoctl is a VERY CPU TIME INTENSIVE FUNCTION !!!
  1097.         Only call it during the INITIALIZATION of the network !!!
  1098.  
  1099.         My suggestion : Run the server in "blocking" mode, the Clients in
  1100.         "nonblocking" mode... seems to be the fastest...
  1101.  
  1102.    INPUTS
  1103.         SBase    - Result of the call (C Syntax here...)
  1104.                    SBase = OpenLibrary("bsdsocket.library",0);
  1105.         Socket   - The Socket of the application, which socket is to be modified
  1106.         arg      - "Non-Blocking" or "Blocking" (a pointer)
  1107.  
  1108.    RESULTS
  1109.         result   - 0 on success, -1 on fail (should not fail,normally...)
  1110.  
  1111.    SEE ALSO
  1112.         OpenClient(),OpenServer(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgAccept(),GetUDPName(),RtgInAdr()
  1113.  
  1114. rtgmaster.library/RtgOpenFont                              rtgmaster.library/RtgOpenFont
  1115.  
  1116.    NAME
  1117.         RtgOpenFont - opens an AmigaFont
  1118.  
  1119.    SYNOPSIS
  1120.         font = RtgOpenFont(RtgScreen,ta)
  1121.          D0                 A0       A1
  1122.  
  1123.         void * RtgOpenFont(struct RtgScreen *,struct TextAttr *)
  1124.  
  1125.    FUNCTION
  1126.         This function loads an AmigaFont to memory, for the usage on
  1127.         a RtgScreen, much the same way, like OpenDiskFont does for
  1128.         Intuition Screens. ta is a normal TextAttr pointer, like
  1129.         for OpenDiskFont for diskfont.library, but the RESULT
  1130.         is not for all WB Emulations a TextFont pointer. Don't use
  1131.         OpenDiskFont or OpenFont with rtgmaster.library, use
  1132.         RtgOpenFont, for the best possible compatibility with
  1133.         all Sublibraries !!!
  1134.  
  1135.    INPUTS
  1136.         RtgScreen - an RtgScreen
  1137.         ta        - a TextAttr structure, like defined in graphics/text.i (or .h)
  1138.  
  1139.    RESULTS
  1140.         font      - A pointer to a font pointer. It's internal structure is
  1141.                     PRIVATE to rtgmaster.library, and NOT THE SAME for all
  1142.                     sublibraries
  1143.  
  1144.    NOTES
  1145.         Not yet implemented for rtgPICA.library
  1146.  
  1147.    SEE ALSO
  1148.         RtgCloseFont(),RtgSetFont(),RtgSetTextMode(),RtgText(),RtgSetTextModeRGB
  1149.  
  1150. rtgmaster.library/RtgRecv                                  rtgmaster.library/RtgRecv
  1151.  
  1152.    NAME
  1153.         RtgRecv - The Socket of this application receives data from a connected socket
  1154.  
  1155.    SYNOPSIS
  1156.         length = RtgRecv(SBase,Socket,message,sender,len)
  1157.          D0               A0    A1     A2      A3     D0
  1158.  
  1159.         int RtgRecv(struct Library *,struct RTG_Socket *,struct char *,struct sockaddr_in *,int)
  1160.  
  1161.    FUNCTION
  1162.         This function is no longer compatible to rtgmaster.library V6 and below !!!
  1163.  
  1164.         This function gets data to the application that is sent to its socket by a socket
  1165.         that is connected to the socket of the Application (it is not that difficult to
  1166.         understand like it sounds... read the docs :) )
  1167.  
  1168.         If the "virtual connection" (or the "connectionless connection" or what this is called
  1169.         for UDP... :) ) is "blocking", it WAITS, if there is no message available
  1170.         on the socket, till one is available. If it is "non-blocking", it returns -1, if no
  1171.         message is available (see RtgIoctl for more details about "blocking" and "Non-Blocking".
  1172.         The default is "Blocking", BTW...)
  1173.  
  1174.         Sender is a special structure that you can use to find out from what IP Address
  1175.         the message was sent. You can convert it to an IP Address using RtgInAdr. This
  1176.         only works with UDP (with TCP, you differentiate Clients from each other with the
  1177.         socket number...). Appearently, you CAN'T differentiate Clients that run on the
  1178.         same machine !!! Sender is NOT allocated by the function, you have to provide
  1179.         the structure...
  1180.  
  1181.         For TCP you simple provide a 0 for Sender. It will be ignored.
  1182.  
  1183.         You can use this feature to do multiple connection without using RunServer (that
  1184.         does not support UDP up to now anyways...).
  1185.  
  1186.         NOTE: For *TCP* you provide the Socket of the Application which you want to
  1187.         contact. For *UDP* you provide your OWN'S Socket. Important difference !!!
  1188.  
  1189.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1190.         yourselves and provide it as parameter. This is needed because of some internal
  1191.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1192.         at the Docs for more information.
  1193.  
  1194.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1195.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1196.  
  1197.         NOTE: It is NOT possible to give Socket->s (the Socket Number) of a Client
  1198.         to the Server using RtgRecv or RunServer !!! You will have to examine
  1199.         inbuffer->num[x] to find out which Socket was the Sender !!! Also len
  1200.         should NEVER be bigger than the actual message, or you might get a lot
  1201.         of strange results !!!
  1202.  
  1203.    INPUTS
  1204.         SBase    - Result of the call (C Syntax here...)
  1205.                    SBase = OpenLibrary("bsdsocket.library",0);
  1206.         Socket   - The Socket of THIS application
  1207.         message  - The buffer, to which supplied messages will be put
  1208.         Sender   - The Function will fill in data about the Sender to this structure.
  1209.         len      - The length of the message to wait for
  1210.  
  1211.    RESULTS
  1212.         length   - The length of the message received. If it is smaller
  1213.                    than the message, you waited for, do a RtgRecv once more...
  1214.                    NOTE: If a message was received that is too long to fit to
  1215.                    the buffer, some Bytes might be discarded. So you should
  1216.                    not send more Bytes than you want to receive... use a standard
  1217.                    Package Size at best...
  1218.     SEE ALSO
  1219.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgSend(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  1220.  
  1221. rtgmaster.library/RtgScreenAtFront                         rtgmaster.library/RtgScreenAtFront
  1222.  
  1223.    NAME
  1224.         RtgScreenAtFront - determines if a RtgScreen is at front
  1225.  
  1226.    SYNOPSIS
  1227.         boolean = RtgScreenAtFront(RtgScreen)
  1228.                                     A0
  1229.  
  1230.         RtgScreenAtFront(struct RtgScreen *)
  1231.  
  1232.    FUNCTION
  1233.         This function should determine if this RtgScreen is currently at
  1234.         front.  It should return TRUE (0xfffffff) if the screen is in front
  1235.         of all other screens, and FALSE (0) if the screen is behind (partially
  1236.         or completely) an other screen.
  1237.  
  1238.         Note that this function will not be heavily reliable, since the user
  1239.         might switch screens at any time.
  1240.  
  1241.    INPUTS
  1242.         RtgScreen - A handle for a valid screen previously opened by
  1243.                     this sublibrary's OpenRtgScreen() function.
  1244.  
  1245.    RESULTS
  1246.         boolean - TRUE if screen is at front, FALSE otherwise.
  1247.  
  1248.    SEE ALSO
  1249.         OpenRtgScreen()
  1250.  
  1251. rtgmaster.library/RtgScreenModeReq                        rtgmaster.library/RtgScreenModeReq
  1252.  
  1253.    NAME
  1254.         RtgScreenModeReq -- Opens a ScreenMode requester
  1255.  
  1256.    SYNOPSIS
  1257.         ScreenReq = RtgScreenModeReq(ScreenModeTags)
  1258.          D0                           A0
  1259.  
  1260.         struct ScreenReq *RtgScreenModeReq(struct TagItem *)
  1261.  
  1262.    FUNCTION
  1263.         Opens a ScreenMode requester which displays all available
  1264.         ScreenModes to the user, depending on the Tags which are passed
  1265.         to this function.  The functions returns a pointer to a
  1266.         ScreenReq structure or NULL for failure or if the user
  1267.         cancelled the requester.
  1268.  
  1269.         The ScreenReq holds various information which the user selected,
  1270.         like width, height, screenmode and depth.
  1271.  
  1272.         THIS FUNCTION IS ONLY IN THE MASTER-LIBRARY. It handles the Screenmodes
  1273.         for ALL sublibraries.
  1274.  
  1275.         Note: The Screenmode-Requester provided with an early Beta of the
  1276.         rtgmaster.library was VERY buggy. It got completely replaced by
  1277.         a new one for this version of the library.
  1278.  
  1279.    INPUTS
  1280.         ScreenModeTags - Pointer to (an array of) TagItem structures,
  1281.                          terminated by the value TAG_END (0).
  1282.  
  1283.         The description for the various tags can be found in the .i/.h
  1284.         file (smr_Tags). NOTE: The Tags changed a lot since the early
  1285.         Beta release of the library.
  1286.  
  1287.    RESULTS
  1288.         ScreenReq - A pointer to a ScreenReq structure or NULL for
  1289.                     failure
  1290.  
  1291.    SEE ALSO
  1292.         OpenRtgScreen(),FreeRtgScreenModeReq()
  1293.  
  1294. rtgmaster.library/RtgSend                                  rtgmaster.library/RtgSend
  1295.  
  1296.    NAME
  1297.         RtgSend - The Socket of this application sends data to a connected socket
  1298.  
  1299.    SYNOPSIS
  1300.         length = RtgSend(SBase,Socket,message,Receiver,len)
  1301.          D0               A0    A1     A2      A3       D0
  1302.  
  1303.         int RtgSend(struct Library *,struct RTG_Socket *,struct char *,struct sockaddr_in *,int)
  1304.  
  1305.    FUNCTION
  1306.         This function is no longer compatible to rtgmaster.library V6 and below !!!
  1307.  
  1308.         This function puts data from the application to the socket of an application
  1309.         that is connected to the socket of the Application (it is not that difficult to
  1310.         understand like it sounds... read the docs :) )
  1311.  
  1312.         If the "virtual connection" (well, this term does not fit for UDP, as it is
  1313.         connectionless, but i do not know how to call it else... :) ) is "blocking", it WAITS, if there is no message available
  1314.         on the socket, till one is available. If it is "non-blocking", it returns -1, if no
  1315.         message is available (see RtgIoctl for more details about "blocking" and "Non-Blocking".
  1316.         The default is "Blocking", BTW...)
  1317.  
  1318.         Receiver is a special structure that you can use to tell the receiver your IP Address.
  1319.         You get your IP Address with GetUDPName (works only for UDP... for TCP this returns
  1320.         0...). For TCP you provide simply 0 for Receiver, it will be ignored.
  1321.         You can convert it to an IP Address using RtgInAdr. This
  1322.         only works with UDP (with TCP, you differentiate Clients from each other with the
  1323.         socket number...). Appearently, you CAN'T differentiate Clients that run on the
  1324.         same machine !!!
  1325.  
  1326.         You can use this feature to do multiple connection without using RunServer (that
  1327.         does not support UDP up to now anyways...).
  1328.  
  1329.         NOTE: For *TCP* you provide the Socket of the Application which you want to
  1330.         contact. For *UDP* you provide your OWN'S Socket. Important difference !!!
  1331.  
  1332.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1333.         yourselves and provide it as parameter. This is needed because of some internal
  1334.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1335.         at the Docs for more information.
  1336.  
  1337.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1338.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1339.  
  1340.         NOTE: It is NOT possible to give Socket->s (the Socket Number) of a Client
  1341.         to the Server using RtgRecv or RunServer !!! You will have to examine
  1342.         inbuffer->num[x] to find out which Socket was the Sender !!! Also len
  1343.         should NEVER be bigger than the actual message, or you might get a lot
  1344.         of strange results !!!
  1345.  
  1346.    INPUTS
  1347.         SBase    - Result of the call (C Syntax here...)
  1348.                    SBase = OpenLibrary("bsdsocket.library",0);
  1349.         Socket   - The Socket of THIS application
  1350.         message  - The message to be sent (an ASCII string, actually...)
  1351.         Receiver - The data you got from GetUDPName, tells the receiver your IP address...
  1352.         len      - The length of the string to send ...
  1353.  
  1354.    RESULTS
  1355.         length   - The length of the message sent. If it is smaller
  1356.                    than the message, you sent, do a RtgSend once more...
  1357.                    Probably the socket you sent to was quite busy with other
  1358.                    messages currently...
  1359.  
  1360.                    NOTE: If the send fails at all, maybe your message was too
  1361.                    long for TCP/IP ? (As to the allowed package sizes, 1 KB works
  1362.                    for sure... i do not know exactly how much more is possible...)
  1363.  
  1364.     SEE ALSO
  1365.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgRecv(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  1366.  
  1367. rtgmaster.library/RtgSetFont                              rtgmaster.library/RtgSetFont
  1368.  
  1369.    NAME
  1370.         RtgSetFont - sets an AmigaFont to an RtgScreen
  1371.  
  1372.    SYNOPSIS
  1373.         RtgSetFont(RtgScreen,font)
  1374.                     A0        A1
  1375.  
  1376.         void RtgSetFont(struct RtgScreen *,void *)
  1377.  
  1378.    FUNCTION
  1379.         This function sets an AmigaFont (that was opened using
  1380.         RtgOpenFont tomemory before) to an RtgScreen. Following
  1381.         RtgText() calls will use this font, now.
  1382.  
  1383.    INPUTS
  1384.         RtgScreen - an RtgScreen
  1385.         font      - a Font pointer. the structure of it is PRIVATE
  1386.                     to rtgmaster.library (and not the same for all
  1387.                     sublibraries...)
  1388.  
  1389.    NOTES
  1390.         Not yet implemented for rtgPICA.library
  1391.  
  1392.    SEE ALSO
  1393.         RtgOpenFont(),RtgCloseFont(),RtgSetTextMode(),RtgText(),RtgSetTextModeRGB
  1394.  
  1395. rtgmaster.library/RtgSetPointer                           rtgmaster.library/RtgSetPointer
  1396.  
  1397.    NAME
  1398.         RtgSetPointer - sets the pointer to a new image
  1399.  
  1400.    SYNOPSIS
  1401.         RtgSetPointer(RtgScreen,pointer,Width,Height,OffsetX,OffsetY)
  1402.                          A0      A1      D0    D1     D2      D3
  1403.  
  1404.         void RtgSetPointer(struct RtgScreen *,UWORD *,WORD,WORD,WORD,WORD)
  1405.  
  1406.    FUNCTION
  1407.         This function sets the mousepointer to a new image for this RtgScreen.
  1408.         The structure pointer is exactly the same like taken from intuition.library
  1409.         command SetPointer (the data definition of a Simple Sprite). Different
  1410.         from this only is that the image HAS TO BE 16x18 pixels size. If you
  1411.         want a smaller pointer, modify the Width/Height values and set that
  1412.         pixels that you do not need to 0. But the SIZE of the structure has
  1413.         to be 16x18 pixels (72 Bytes). An example :
  1414.  
  1415.         UWORD Hoehe[2]
  1416.         {
  1417.             0x...,0x... // first line
  1418.             ...
  1419.             0x...,0x... // 18th line
  1420.         }
  1421.  
  1422.         Look at graphics.library SimpleSprite documentation for more information
  1423.         (01,10,11 are the three pointer colors,00 is transperent, each of
  1424.         the two words of a line determines ONE BIT of the 2-Bit mousepointer).
  1425.  
  1426.    INPUTS
  1427.         RtgScreen - The RtgScreen, which pointer should be resetted...
  1428.         pointer   - pointer image, see above
  1429.         Width     - Actual Width of the pointer
  1430.         Height    - Actual Height of the pointer
  1431.         OffsetX   - Display Offset for the pointer, from the mouseposition
  1432.         OffsetY   - Display Offset for the pointer, from the mouseposition
  1433.  
  1434.    NOTES
  1435.        Not implemented yet on rtgPICA.library and rtgEGS.library
  1436.  
  1437.        Do NOT specifically demand Chipram for the pointer array.
  1438.        Else your program won't run on the DraCo. rtgmaster.library will
  1439.        handle this itself, that the pointer-image will end in
  1440.        Chipram for ECS/AGA, in ANYTHING AVAILABLE on GFX Board system.
  1441.        So simply allocate RAM for the pointer image, without simply
  1442.        demanding Chipram or Fastram (as DraCo needs FastRam, and
  1443.        ECS/AGA need Chipram here... but well... rtgmaster.library
  1444.        takes care of this :) )
  1445.  
  1446.    SEE ALSO
  1447.        RtgClearPointer()
  1448.  
  1449. rtgmaster.library/RtgGetMsg                             rtgmaster.library/RtgGetMsg
  1450.  
  1451.    NAME
  1452.         RtgGetMsg - replies the message on an RDCMP
  1453.  
  1454.    SYNOPSIS
  1455.         imsg = RtgGetMsg(RtgScreen)
  1456.          d0               a0
  1457.  
  1458.         void *RtgGetMsg(struct RtgScreen *)
  1459.  
  1460.    FUNCTION
  1461.         Gets the latest message of a RDCMP. RDCMP uses the
  1462.         structures of the IntuiMessage of intuition (but note,
  1463.         this is NOT an IDCMP... it only simulates the structures
  1464.         of the IDCMP !!!)
  1465.         List of the structures for those guys without OS includes
  1466.         (look at intuition/intuition.h or .i) (ASM notation, as
  1467.         C guys usually HAVE OS includes...)
  1468.  
  1469.         STRUCTURE IntuiMessage,0
  1470.  
  1471.          STRUCT im_ExecMessage,mn_SIZE
  1472.  
  1473.          LONG im_Class
  1474.  
  1475.          // For rtgmaster this is IDCMP_MOUSEBUTTONS or
  1476.          // IDCMP_RAWKEY, as RDCMP only supports mousebuttons
  1477.          // or keyboard events... look at this field to examine
  1478.          // which event happened...
  1479.  
  1480.          WORD im_Code
  1481.  
  1482.          // For Keyboard events, here the Rawkey value of the pressed
  1483.          // key is found... Bit 7 handles Keydown/Keyup, like usual...
  1484.  
  1485.          // For mouse : SELECTUP,SELECTDOWN,...
  1486.  
  1487.          WORD im_Qualifier
  1488.  
  1489.          // The Qualifiers for CTRL,SHIFT,... each qualifier has a bit...
  1490.  
  1491.          APTR im_IAddress
  1492.  
  1493.          WORD im_MouseX
  1494.          WORD im_MouseY
  1495.  
  1496.          // Mouseposition, when the event happened...
  1497.  
  1498.          LONG im_Seconds
  1499.          LONG im_Micros
  1500.  
  1501.          // systemtime, when the event happened
  1502.  
  1503.          APTR im_IDCMPWindow
  1504.  
  1505.          // Well, undefined for RDCMP, as rtgmaster not
  1506.          // always uses Intuition :)
  1507.  
  1508.          APTR im_SpecialLink
  1509.  
  1510.         // Well... usually undefined for RDCMP... don't acces
  1511.         // it...
  1512. };
  1513.  
  1514.         IDCMP_MOUSEBUTTONS EQU 8
  1515.         IDCMP_RAWKEY EQU 1024
  1516. SELECTUP        EQU     (IECODE_LBUTTON+IECODE_UP_PREFIX)
  1517. SELECTDOWN      EQU     (IECODE_LBUTTON)
  1518. MENUUP          EQU     (IECODE_RBUTTON+IECODE_UP_PREFIX)
  1519. MENUDOWN        EQU     (IECODE_RBUTTON)
  1520. MIDDLEUP        EQU     (IECODE_MBUTTON+IECODE_UP_PREFIX)
  1521. MIDDLEDOWN      EQU     (IECODE_MBUTTON)
  1522.  
  1523. out of devices/inputevents.i :
  1524.  
  1525. IECODE_LBUTTON                  EQU     $68     ; also uses IECODE_UP_PREFIX
  1526. IECODE_RBUTTON                  EQU     $69     ;
  1527. IECODE_MBUTTON                  EQU     $6A     ;
  1528.  
  1529. IEQUALIFIER_LSHIFT              EQU     $0001
  1530. IEQUALIFIER_RSHIFT              EQU     $0002
  1531. IEQUALIFIER_CAPSLOCK            EQU     $0004
  1532. IEQUALIFIER_CONTROL             EQU     $0008
  1533. IEQUALIFIER_LALT                EQU     $0010
  1534. IEQUALIFIER_RALT                EQU     $0020
  1535. IEQUALIFIER_LCOMMAND            EQU     $0040
  1536. IEQUALIFIER_RCOMMAND            EQU     $0080
  1537. IEQUALIFIER_MIDBUTTON           EQU     $1000
  1538. IEQUALIFIER_RBUTTON             EQU     $2000
  1539. IEQUALIFIER_LEFTBUTTON          EQU     $4000
  1540.  
  1541. but well, simply include the two OS includes, and you won't have to
  1542. bother about this stuff... :)
  1543.  
  1544.    INPUTS
  1545.         RtgScreen - The Screen, which port is to be used
  1546.  
  1547.    NOTES
  1548.        RDCMP supports both waiting and polling !!!
  1549.        As to my experiences, better use RDCMP than anything else...
  1550.        other methods i tried tended to lose mouseclicks, if
  1551.        they came very fast, and if the application took a lot
  1552.        of processing time. RDCMP does not lose data.
  1553.        Information about polling : See docs of RtgWaitRDCMP
  1554.  
  1555.    SEE ALSO
  1556.         RtgWaitRDCMP(),RtgInitRDCMP(),RtgReplyMsg()
  1557.  
  1558. rtgmaster.library/RtgReplyMsg                             rtgmaster.library/RtgReplyMsg
  1559.  
  1560.    NAME
  1561.         RtgReplyMsg - replies the message on an RDCMP
  1562.  
  1563.    SYNOPSIS
  1564.         RtgReplyMsg(RtgScreen, imsg)
  1565.                      a0        a1
  1566.  
  1567.         void RtgReplyMsg(struct RtgScreen *,void *)
  1568.  
  1569.    FUNCTION
  1570.         Replies the message on a RDCMP and tells the port, that the
  1571.         message can be deleted now. Save all values of the message that
  1572.         you need before this !!! Don't access the structure itself
  1573.         after the reply !!!
  1574.  
  1575.    INPUTS
  1576.         RtgScreen - The Screen, which port is to be used
  1577.         imsg - the messages to be replied
  1578.  
  1579.    NOTES
  1580.        DOES NOT RUN ON rtgPICA.library up to now !!!
  1581.        RDCMP supports both waiting and polling !!!
  1582.        As to my experiences, better use RDCMP than anything else...
  1583.        other methods i tried tended to lose mouseclicks, if
  1584.        they came very fast, and if the application took a lot
  1585.        of processing time. RDCMP does not lose data.
  1586.  
  1587.    SEE ALSO
  1588.         RtgWaitRDCMP(),RtgInitRDCMP(),RtgGetMsg()
  1589.  
  1590.  
  1591. rtgmaster.library/RtgSetTextMode                              rtgmaster.library/RtgSetTextMode
  1592.  
  1593.    NAME
  1594.         RtgSetTextMode - sets text color and drawing mode
  1595.  
  1596.    SYNOPSIS
  1597.         RtgSetTextMode(RtgScreen,fgcolor,bgcolor,drmode)
  1598.                         A0        D0      D1      D2
  1599.  
  1600.         void RtgSetTextMode(struct RtgScreen *,UBYTE,UBYTE,UBYTE)
  1601.  
  1602.    FUNCTION
  1603.         Sets the foreground color, the background color and the drawing
  1604.         mode for Text on this RtgScreen.  drmodes are defined as usual
  1605.         in graphics/rastport.i (or .h) : JAM1, JAM2, COMPLEMENT.
  1606.         INVERSVID is not valid...
  1607.  
  1608.         This function should only be used on Displays with depth <=8.
  1609.  
  1610.    INPUTS
  1611.         RtgScreen - an RtgScreen
  1612.         fgcolor   - Foreground color
  1613.         bgcolor   - Background color
  1614.         drwmode   - Drawing mode, defined in graphics/rastport.i (or .h)
  1615.  
  1616.    NOTES
  1617.         Not yet implemented for rtgPICA.library
  1618.  
  1619.    SEE ALSO
  1620.         RtgOpenFont(),RtgSetFont(),RtgCloseFont(),RtgText(),RtgSetTextModeRGB()
  1621.  
  1622.  
  1623. rtgmaster.library/RtgSetTextModeRGB                              rtgmaster.library/RtgSetTextModeRGB
  1624.  
  1625.    NAME
  1626.         RtgSetTextModeRGB - sets text color and drawing mode for depths >8
  1627.  
  1628.    SYNOPSIS
  1629.         RtgSetTextModeRGB(RtgScreen,fgcolor,bgcolor,drmode)
  1630.                         A0        D0      D1      D2
  1631.  
  1632.         void RtgSetTextModeRGB(struct RtgScreen *,ULONG,ULONG,UBYTE)
  1633.  
  1634.    FUNCTION
  1635.         Sets the foreground color, the background color and the drawing
  1636.         mode for Text on this RtgScreen.  drmodes are defined as usual
  1637.         in graphics/rastport.i (or .h) : JAM1, JAM2, COMPLEMENT.
  1638.         INVERSVID is not valid...
  1639.  
  1640.         Should only be used on Displays with depth >8.
  1641.  
  1642.    NOTES
  1643.         Due to a bug in CyberGraphX, this function does not work
  1644.         very well with rtgCGX.library (strange colors...). Not yet
  1645.         implemented in rtgPICA.library.
  1646.  
  1647.    INPUTS
  1648.         RtgScreen - an RtgScreen
  1649.         fgcolor   - Foreground color
  1650.         bgcolor   - Background color
  1651.         drwmode   - Drawing mode, defined in graphics/rastport.i (or .h)
  1652.  
  1653.  
  1654.    SEE ALSO
  1655.         RtgOpenFont(),RtgSetFont(),RtgCloseFont(),RtgText(),RtgSetTextMode()
  1656.  
  1657.  
  1658. rtgmaster.library/RtgText                              rtgmaster.library/RtgText
  1659.  
  1660.    NAME
  1661.         RtgText - displays Text on an RtgScreen
  1662.  
  1663.    SYNOPSIS
  1664.         RtgText(RtgScreen,buffer,string,length,xpos,ypos)
  1665.                  A0        A1     A2     D0     D1   D2
  1666.  
  1667.         void RtgText(struct RtgScreen *,void *,char *,WORD,SHORT,SHORT)
  1668.  
  1669.    FUNCTION
  1670.         Displays the string "string" with the chosen font parameters (see
  1671.         RtgSetFont(), RtgSetTextMode(), RtgSetTextModeRGB() ) at position
  1672.         xpos,ypos much the same way like Text() of graphics.library does.
  1673.  
  1674.    INPUTS
  1675.         RtgScreen - an RtgScreen
  1676.         buffer    - The buffer address of the buffer where to display the text
  1677.         string    - pointer to a string
  1678.         length    - length of the string in characters
  1679.         xpos      - the x-pos
  1680.         ypos      - the y-pos
  1681.  
  1682.    NOTES
  1683.         Not yet implemented for rtgPICA.library.
  1684.  
  1685.    SEE ALSO
  1686.         RtgOpenFont(),RtgSetFont(),RtgCloseFont(),RtgCloseFont(),RtgSetTextModeRGB(),RtgSetTextMode()
  1687.  
  1688. rtgmaster.library/RtgWaitRDCMP                             rtgmaster.library/RtgWaitRDCMP
  1689.  
  1690.    NAME
  1691.         RtgWaitRDCMP - Waits on a message on the RDCMP of the Screen
  1692.  
  1693.    SYNOPSIS
  1694.         RtgWaitRDCMP(RtgScreen)
  1695.                      a0
  1696.  
  1697.         void RtgWaitRDCMP(struct RtgScreen *)
  1698.  
  1699.    FUNCTION
  1700.         Waits on a message on the RDCMP. If you don't want your
  1701.         application to WAIT while the user is giving no inputs
  1702.         (well, it usually should NOT wait for games...), use polling :
  1703.  
  1704.         1. Open the Screen and init its RDCMP
  1705.         2. Inside the loop, do RtgGetMsg
  1706.         3. If imsg->Class is RDCMP_MOUSEBUTTONS or
  1707.            RDCMP_RAWKEY, handle the message and reply it
  1708.            using RtgReplyMsg
  1709.         4. Else don't reply it (if you reply a message when there
  1710.            in fact is NO MESSAGE, you might crash the system !!!)
  1711.  
  1712.    INPUTS
  1713.         RtgScreen - The Screen, which port is to be used
  1714.  
  1715.    NOTES
  1716.        DOES NOT RUN ON rtgPICA.library up to now !!!
  1717.  
  1718.    SEE ALSO
  1719.         RtgInitRDCMP(),RtgGetMsg(),RtgReplyMsg()
  1720.  
  1721.  
  1722. rtgmaster.library/RtgWaitTOF                                  rtgmaster.library/RtgWaitTOF
  1723.  
  1724.    NAME
  1725.         RtgWaitTOF - Wait for the top of the next video frame.
  1726.  
  1727.    SYNOPSIS
  1728.         WaitTOF(RtgScreen)
  1729.                  A0
  1730.  
  1731.         WaitTOF(struct RtgScreen *)
  1732.  
  1733.    FUNCTION
  1734.         Wait  for vertical blank to occur and all vertical blank
  1735.         interrupt routines to complete before returning to caller.
  1736.  
  1737.         Does not do anything at all with some sublibraries... (CyberGraphX does not
  1738.         support TOF-Waiting up to now...)
  1739.  
  1740.    INPUTS
  1741.         The Screen Handle of the GFX Board Screen (only in FACT needed for rtgEGS.library,
  1742.         and probably nothing much is done about it anyway... but be nice... give this
  1743.         parameter... to stay compatible :) )
  1744.  
  1745.    RESULTS
  1746.         Places this task on the TOF wait queue. When the vertical blank
  1747.         interrupt comes around, the interrupt service routine will fire off
  1748.         signals to all the tasks doing WaitTOF. The highest priority task
  1749.         ready will get to run then.
  1750.  
  1751.    SEE ALSO
  1752.        graphics.library/WaitTOF()
  1753.  
  1754. rtgmaster.library/RunServer                                      rtgmaster.library/RunServer
  1755.  
  1756.    NAME
  1757.         RunServer -- Handle all the messaging for a server and several clients
  1758.  
  1759.    SYNOPSIS
  1760.         New_Socket = RunServer(SBase,Socket,in_buffer,out_buffer,maxplayers)
  1761.          D0                     A0    A1     A2        A3         D0
  1762.  
  1763.         struct RTG_Socket *RunServer(struct Library *,struct RTG_Socket *,struct RTG_Buff *,struct RTG_Buff *,int)
  1764.  
  1765.    FUNCTION
  1766.         You will have to run this fine
  1767.         function in a loop. Every time it returns, it gives you the Socket of a new connected
  1768.         client or 0, if no new Client connected. Also, in  in_buffer, you will have all new
  1769.         messages sent from  already connected Clients to the server, and all messages you filled
  1770.         in in out_buffer before calling this function, will be sent to the Clients.
  1771.         If nothing happened, this function returns at once, with consuming nearly no CPU time.
  1772.  
  1773.         You SHOULD initialize the in_buffer.num values with -1 EACH TIME, before
  1774.         RunServer is run, and the out_buffer.num values once before the FIRST TIME
  1775.         RunServer is called !!!
  1776.  
  1777.         NOTE: If you (later...) use RunServer, the Server can't handle a Player. You need
  1778.         ONE CLIENT PER PLAYER AND AN ADDITIONAL SERVER WITHOUT A PLAYER. The Server can run
  1779.         on a system, where a Client is also running, though (should be the fastest system in
  1780.         the connection, probably, as it will have to do all that messaging to the Client ...)
  1781.  
  1782.         NOTE: It might appear strange to you, that you have to open bsdsocket.library
  1783.         yourselves and provide it as parameter. This is needed because of some internal
  1784.         problems of AmiTCP, that make it IMPOSSIBLE opening it inside a library. Look
  1785.         at the Docs for more information.
  1786.  
  1787.         You do NOT have to use rtgmaster.library's Graphics Board features to
  1788.         use rtgmaster.library's TCP/IP features, if you do not WANT to...
  1789.  
  1790.         NOTE: It is NOT possible to give Socket->s (the Socket Number) of a Client
  1791.         to the Server using RtgRecv or RunServer !!! You will have to examine
  1792.         inbuffer->num[x] to find out which Socket was the Sender !!! Also len
  1793.         should NEVER be bigger than the actual message, or you might get a lot
  1794.         of strange results !!!
  1795.  
  1796.         NOTE: UP TO NOW (rtgmaster Version 7) ONLY SUPPORTS TCP... NO UDP SUPPORT UP TO NOW !!!
  1797.  
  1798.    INPUTS
  1799.         SBase      - Result of the call (C Syntax here...)
  1800.                      SBase = OpenLibrary("bsdsocket.library",0);
  1801.         Socket     - The Socket of THIS application (the Server...)
  1802.         in_buffer  - messages that arrived during the call of RunServer
  1803.         out_buffer - messages that Run_Server should deliver
  1804.         maxplayers - The Maximum of Clients allowed (CAN'T BE BIGGER THAN 12 !!!)
  1805.  
  1806.    RESULTS
  1807.         New_Socket - The Socket of a newly connected Client. Save it somewhere...
  1808.  
  1809.    SEE ALSO
  1810.         OpenClient(),CloseClient(),CloseClient(),CloseServer(),RunServer(),RtgRecv(),RtgSend(),RtgAccept(),RtgIoctl(),GetUDPName(),RtgInAdr()
  1811.  
  1812. rtgmaster.library/SetSegment                                     rtgmaster.library/SetSegment
  1813.  
  1814.    NAME
  1815.         SetSegment -- set the active segment
  1816.  
  1817.    SYNOPSIS
  1818.         SetSegment(segnum)
  1819.                     D0
  1820.  
  1821.         SetSegment(ULONG)
  1822.  
  1823.    FUNCTION
  1824.         If the graphic board works in segment mode -- with a
  1825.         memory window of 64 KByte -- a call to SetSegment() sets
  1826.         the active segment to the supplied number.
  1827.  
  1828.         If the graphic board works non-segmented, a call to this
  1829.         function has no effect.
  1830.  
  1831.    INPUTS
  1832.         segnum - number of segment
  1833.  
  1834.    SEE ALSO
  1835.         GetSegment()
  1836.  
  1837.  
  1838.  
  1839. rtgmaster.library/SwitchScreens                              rtgmaster.library/SwitchScreens
  1840.  
  1841.    NAME
  1842.         SwitchScreens -- Perform doublebuffering
  1843.  
  1844.    SYNOPSIS
  1845.         SwitchScreens(RtgScreen, Buffer)
  1846.                        A0         D0
  1847.  
  1848.         SwitchScreens(ULONG, ULONG)
  1849.  
  1850.    FUNCTION
  1851.         RtgScreen passed in A0 is a handle of a screen previously opened
  1852.         by OpenRtgScreen().
  1853.  
  1854.         This functions is used to specify the buffer which should
  1855.         be displayed starting from the next Vertical Blank.  The buffer
  1856.         supplied is a simple number (0 = first buffer, 1 = 2nd buffer
  1857.         etcetera).
  1858.  
  1859.         If the same buffer is being specified as is being displayed then
  1860.         this function should do nothing.
  1861.  
  1862.         This function will never be called from interupts.
  1863.  
  1864.    INPUTS
  1865.         RtgScreen - A handle for a valid screen previously opened by
  1866.                     this sublibrary's OpenRtgScreen() function.
  1867.         Buffer - The buffer number the user wishes to display
  1868.  
  1869.    SEE ALSO
  1870.         OpenRtgScreen(),WaitRtgSwitch()
  1871.  
  1872.  
  1873.  
  1874. rtgmaster.library/UnlockRtgScreen                          rtgmaster.library/UnlockRtgScreen
  1875.  
  1876.    NAME
  1877.         UnlockRtgScreen -- Unlocks a RtgScreen
  1878.  
  1879.    SYNOPSIS
  1880.         UnlockRtgScreen(RtgScreen)
  1881.                          A0
  1882.  
  1883.         UnlockRtgScreen(ULONG)
  1884.  
  1885.    FUNCTION
  1886.         Unlocks a previously locked RtgScreen.  If this screen hasn't
  1887.         been locked before this function will do nothing.
  1888.  
  1889.         LockRtgScreen() and UnlockRtgScreen() functions nest, which means
  1890.         the user must call an UnlockRtgScreen() for every LockRtgScreen().
  1891.         If not the user will end up with a permenantly locked screen.
  1892.  
  1893.    INPUTS
  1894.         RtgScreen - A handle for a valid screen previously opened by
  1895.                     this sublibrary's OpenRtgScreen() function.
  1896.  
  1897.    SEE ALSO
  1898.         LockRtgScreen()
  1899.  
  1900. rtgmaster.library/WaitRtgBlit                                 rtgmaster.library/WaitRtgBlit
  1901.  
  1902.    NAME
  1903.         WaitRtgBlit - Waits on the Blitter to be finished
  1904.  
  1905.    SYNOPSIS
  1906.         WaitRtgBlit(RtgScreen)
  1907.                     A0
  1908.  
  1909.         WaitRtgBlit(struct RtgScreen *)
  1910.  
  1911.    FUNCTION
  1912.         Waits for the GFX Board Blitter to be finished. For those who wonder,
  1913.         why RtgScreen has to be given as parameter... it probably won't be used...
  1914.         just to be on the sure side :)
  1915.  
  1916.         Does not do anything at all with some sublibraries. Some of them ALWAYS wait...
  1917.  
  1918.    INPUTS
  1919.         RtgScreen - The RtgScreen structure
  1920.  
  1921.    SEE ALSO
  1922.         OpenRtgScreen(), RtgBlit()
  1923.  
  1924. rtgmaster.library/WaitRtgSwitch                               rtgmaster.library/WaitRtgSwitch
  1925.  
  1926.    NAME
  1927.         WaitRtgSwitch - Waits on Doublebuffering having happened
  1928.  
  1929.    SYNOPSIS
  1930.         WaitRtgSwitch(RtgScreen)
  1931.                     A0
  1932.  
  1933.         WaitRtgSwitch(struct RtgScreen *)
  1934.  
  1935.    FUNCTION
  1936.         As SwitchScreens does not wait till the Doublebuffering has happened,
  1937.         but returns AT ONCE, it might be that the program wants to access the
  1938.         video memory BEFORE the change has happened. In this case you can use
  1939.         WaitRtgSwitch to be sure the change really happened. If you do not
  1940.         want to wait, simply do not use this call :)
  1941.  
  1942.         Does not do much for some sublibraries. Some always wait...
  1943.  
  1944.    INPUTS
  1945.         The Screenhandle of the Screen, where the Wait should happen...
  1946.  
  1947.    SEE ALSO
  1948.         SwitchScreens()
  1949.  
  1950.  
  1951.  
  1952.  
  1953. rtgmaster.library/WriteRtgPixel                               rtgmaster.library/WriteRtgPixel
  1954.  
  1955.    NAME
  1956.         WriteRtgPixel - plots a single pixel to a RtgScreen
  1957.  
  1958.    SYNOPSIS
  1959.         WriteRtgPixel(RtgScreen, BufferAdr, XPos, YPos, Color)
  1960.                        A0         A1         D0    D1    D2
  1961.  
  1962.         WriteRtgPixel(struct RtgScreen *, APTR, ULONG, ULONG, UBYTE)
  1963.  
  1964.    FUNCTION
  1965.         Draws a single pixel at the specified position on a RtgScreen.
  1966.         The BufferAdr is the starting address of the buffer the users wants
  1967.         to draw the pixel in.  The user has obtained this address using
  1968.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  1969.         the correct buffer for screens which are double or triple buffered.
  1970.  
  1971.         This function should only work for Palette mapped modes, Color is
  1972.         the Color number of the palette.
  1973.  
  1974.         This function is not supported by rtgAMI.library
  1975.  
  1976.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  1977.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  1978.         DO THE STUFF YOURSELVES.
  1979.  
  1980.    INPUTS
  1981.         RtgScreen - A handle for a valid screen previously opened by
  1982.                     this sublibrary's OpenRtgScreen() function.
  1983.         BufferAdr - The address of the memory containing the actual
  1984.                     screen graphics
  1985.         XPos - X position of the pixel the user wants to plot
  1986.         YPos - Y position of the pixel the user wants to plot
  1987.         Color - Color number
  1988.  
  1989.    SEE ALSO
  1990.         OpenRtgScreen(), WriteRtgPixelRGB(), WriteRtgPixelArray()
  1991.  
  1992.  
  1993.  
  1994. rtgmaster.library/WriteRtgPixelArray                     rtgmaster.library/WriteRtgPixelArray
  1995.  
  1996.    NAME
  1997.         WriteRtgPixelArray - writes an array of pixels to a RtgScreen
  1998.  
  1999.    SYNOPSIS
  2000.         WriteRtgPixelArray(RtgScreen, BufferAdr, Array, Left, Top, Width, Height)
  2001.                             A0         A1         A2     D0    D1   D2     D3
  2002.  
  2003.         WriteRtgPixelArray(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  2004.                            ULONG, ULONG)
  2005.  
  2006.    FUNCTION
  2007.         Draws an rectangular array of pixels to the specified position on a
  2008.         RtgScreen.  The BufferAdr is the starting address of the buffer the
  2009.         user wants to draw this array of pixels in.  The user has obtained
  2010.         this address using LockRtgScreen() and GetBufAdr().  The BufferAdr is
  2011.         needed to specify the correct buffer for screens which are double or
  2012.         triple buffered.
  2013.  
  2014.         This function should only work for Palette mapped modes.  The array
  2015.         consists of one byte per pixel, each byte specifying a Color number.
  2016.  
  2017.         This function is many times faster than writing each pixel seperately
  2018.         to the screen using WriteRtgPixel().
  2019.  
  2020.         This function is not supported by rtgAMI.library
  2021.  
  2022.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  2023.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  2024.         DO THE STUFF YOURSELVES.
  2025.  
  2026.    INPUTS
  2027.         RtgScreen - A handle for a valid screen previously opened by
  2028.                     this sublibrary's OpenRtgScreen() function.
  2029.         BufferAdr - The address of the memory containing the actual
  2030.                     screen graphics
  2031.         Array - Pointer to an array of pixels which is Width pixels wide, 
  2032.                 and Height pixels high.  Each pixel is one byte in size.
  2033.         Left - X position of the top-left of the rectangular pixel array
  2034.         Top - Y position of the top-left of the rectangular pixel array
  2035.         Width - Width of the array in pixels
  2036.         Height - Height of the array in pixels
  2037.  
  2038.    SEE ALSO
  2039.         OpenRtgScreen(), WriteRtgPixel(), WriteRtgPixelRGBArray()
  2040.  
  2041.  
  2042.  
  2043. rtgmaster.library/WriteRtgPixelRGB                         rtgmaster.library/WriteRtgPixelRGB
  2044.  
  2045.    NAME
  2046.         WriteRtgPixelRGB - plots a single pixel to a RtgScreen
  2047.  
  2048.    SYNOPSIS
  2049.         WriteRtgPixelRGB(RtgScreen, BufferAdr, XPos, YPos, Color)
  2050.                           A0         A1         D0    D1    D2
  2051.  
  2052.         WriteRtgPixelRGB(struct RtgScreen *, APTR, ULONG, ULONG, ULONG)
  2053.  
  2054.    FUNCTION
  2055.         Draws a single pixel at the specified position on a RtgScreen.
  2056.         The BufferAdr is the starting address of the buffer the users wants
  2057.         to draw the pixel in.  The user has obtained this address using
  2058.         LockRtgScreen() and GetBufAdr().  The BufferAdr is needed to specify
  2059.         the correct buffer for screens which are double or triple buffered.
  2060.  
  2061.         This function should only work for True Color modes, Color is
  2062.         a 32 bit value which specifies what Color the pixel should be.
  2063.         The layout of this 32-bit value is as follows:
  2064.  
  2065.         %aaaaaaaa.rrrrrrrr.gggggggg.bbbbbbbb        
  2066.  
  2067.         a = AlphaChannel (8-bits) which may or may not be ignored.  The
  2068.             user will set this to zero if the user doesn't want to use
  2069.             AlphaChannel.
  2070.         r = Red component (8-bits) of the 24-bit RGB value
  2071.         g = Green component (8-bits) of the 24-bit RGB value
  2072.         b = Blue component (8-bits) of the 24-bit RGB value
  2073.  
  2074.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  2075.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  2076.         DO THE STUFF YOURSELVES.
  2077.  
  2078.    INPUTS
  2079.         RtgScreen - A handle for a valid screen previously opened by
  2080.                     this sublibrary's OpenRtgScreen() function.
  2081.         BufferAdr - The address of the memory containing the actual
  2082.                     screen graphics
  2083.         XPos - X position of the pixel the user wants to plot
  2084.         YPos - Y position of the pixel the user wants to plot
  2085.         Color - A 32-bit value describing the color (see above)
  2086.  
  2087.    SEE ALSO
  2088.         OpenRtgScreen(), WriteRtgPixel(), WriteRtgPixelRGBArray()
  2089.  
  2090.  
  2091.  
  2092. rtgmaster.library/WriteRtgPixelRGBArray               rtgmaster.library/WriteRtgPixelRGBArray
  2093.  
  2094.    NAME
  2095.         WriteRtgPixelRGBArray - writes an array of pixels to a RtgScreen
  2096.  
  2097.    SYNOPSIS
  2098.         WriteRtgPixelRGBArray(RtgScreen, BufferAdr, Array, Left, Top, Width, Height)
  2099.                                A0         A1         A2     D0    D1   D2     D3    
  2100.  
  2101.         WriteRtgPixelRGBArray(struct RtgScreen *, APTR, APTR, ULONG, ULONG,
  2102.                               ULONG, ULONG)
  2103.  
  2104.    FUNCTION
  2105.         Draws an rectangular array of pixels to the specified position on a
  2106.         RtgScreen.  The BufferAdr is the starting address of the buffer the
  2107.         user wants to draw this array of pixels in.  The user has obtained
  2108.         this address using LockRtgScreen() and GetBufAdr().  The BufferAdr is
  2109.         needed to specify the correct buffer for screens which are double or
  2110.         triple buffered.
  2111.  
  2112.         This function should only work for True Color modes.  The array
  2113.         consists of one longword (32-bits) per pixel, each longword specifies
  2114.         a Color in this format:
  2115.  
  2116.         %aaaaaaaa.rrrrrrrr.gggggggg.bbbbbbbb        
  2117.  
  2118.         a = AlphaChannel (8-bits) which may or may not be ignored.  The
  2119.             user will set this to zero if the user doesn't want to use
  2120.             AlphaChannel.
  2121.         r = Red component (8-bits) of the 24-bit RGB value
  2122.         g = Green component (8-bits) of the 24-bit RGB value
  2123.         b = Blue component (8-bits) of the 24-bit RGB value
  2124.  
  2125.         This function is many times faster than writing each pixel seperately
  2126.         to the screen using WriteRtgPixelRGB().
  2127.  
  2128.         DO NOT USE FOR SPEED RELEVANT STUFF. THIS FUNCTION MAY HAVE
  2129.         SOME OVERHEAD. FOR FAST OPERATIONS USE COPYRTGPIXELARRAY OR
  2130.         DO THE STUFF YOURSELVES.
  2131.  
  2132.    INPUTS
  2133.         RtgScreen - A handle for a valid screen previously opened by
  2134.                     this sublibrary's OpenRtgScreen() function.
  2135.         BufferAdr - The address of the memory containing the actual
  2136.                     screen graphics
  2137.         Array - Pointer to an array of pixels which is Width pixels wide, 
  2138.                 and Height pixels high.  Each pixel is one longword (32-bits)
  2139.                 in size.
  2140.         Left - X position of the top-left of the rectangular pixel array
  2141.         Top - Y position of the top-left of the rectangular pixel array
  2142.         Width - Width of the array in pixels
  2143.         Height - Height of the array in pixels
  2144.  
  2145.    SEE ALSO
  2146.         OpenRtgScreen(), WriteRtgPixelRGB(), WriteRtgPixelArray()
  2147.